package com.rybbaby.tss.front.tssPayment.entity;

import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.io.Serializable;
import java.util.List;

/**
 * @description 缴费表
 * 
 * @author 雷春琼
 * 
 * @createDate 2017-08-10 上午12:22:55
 */
@Entity
@Table(name = "view_payment_details")
@DynamicUpdate(true)
@DynamicInsert(true)
public class ViewPaymentDetails implements Serializable {


	private static final long serialVersionUID = -7854723139989821165L;
	/** 主键 **/
	private String id;
	/** 会员Id **/
	private String stuId;
	/** 当前操作者Id **/
	private String adminUserId;
	/** 课时包Id **/
	private String packageId;
	/** 报名状态 **/
	private Integer applyStatus;
	/** 缴费金额 **/
	private Double amount;
	/** 缴费编码 **/
	private String paymentCode;
	/** 缴费类型 **/
	private Integer paymentType;
	/** 定金状态 **/
	private Integer depositStatus;
	/** 备注 **/
	private String remark;
	/** 创建时间 **/
	private java.sql.Timestamp createTime;
	/** 修改时间 **/
	private java.sql.Timestamp updateTime;
	/** 课时包名字 **/
	private String packageName;
	/** 亲子总课时数 **/
	private Integer totalClassHour;
	/** 过渡可出勤天数 **/
	private Integer attendanceDay;
	/** 课时包原单价 **/
	private Double originalUnitPrice;
	/** 类型 **/
	private Integer type;
	/** 课时包现单价 **/
	private Double nowUnitPrice;
	/** 赠送天数 **/
	private Integer giftAttendanceDay;
	/** 赠送课时 **/
	private Integer presentClassHour;
	/** 已消耗出勤天数(正) **/
	private Integer positiveConsumptionAttendanceDay;
	/** 已消耗课时数(正) **/
	private Integer positiveConsumptionClassHour;
	/** 未消耗出勤天数(正) **/
	private Integer positiveUnusedAttendanceDay;
	/** 未消耗课时数(正) **/
	private Integer positiveUnusedClassHour;
	/** 剩余正天(正) **/
	private Integer surplusFormalAttendanceDay;
	/** 剩余正课时(正) **/
	private Integer surplusFormalClassHour;
	/** 合同编码 **/
	private String contractNumber;
	/** 课时包总价**/
	private Double sumPrice;
	/** 优惠金额 **/
	private Double discountedPrice;
	/** 操作人 **/
	private String userName;
	/** 学生姓名 **/
	private String studentName;
	/** 联系电话 **/
	private String contactPhone;
	/** 赠品价值 **/
	private Double gifts;
	/** 顾问姓名 **/
	private String realName;
	/** 试听老师 **/
	private String teacherName;
	/** 序号 **/
	private Integer index;
	//关联缴费详情
	private List<ViewPaymentDetails> packageDetailsList;

	/**
	 * 方法: 取得主键
	 *
	 * @return java.lang.String 主键
	 */
	@Id
	@GeneratedValue(generator = "view_payment_detailsIDGenerator" , strategy = GenerationType.AUTO)
	@GenericGenerator(name = "view_payment_detailsIDGenerator" , strategy = "uuid")
	@Column(name = "id", nullable= false, length = 32)
	public String getId() {
		return this.id;
	}

	/**
	 * 方法: 设置主键
	 *
	 * @param id 主键
	 */
	public void setId(String id) {
		this.id = id;
	}
	
	/**
	 * 方法: 取得会员Id
	 *
	 * @return java.lang.String 会员Id
	 */
	@Column(name = "stuId", nullable= true, length = 32)
	public String getStuId() {
		return this.stuId;
	}
	
	/**
	 * 方法: 设置会员Id
	 *
	 * @param stuId 会员Id
	 */
	public void setStuId(String stuId) {
		this.stuId = stuId;
	}
	
	/**
	 * 方法: 取得当前操作者Id
	 *
	 * @return java.lang.String 当前操作者Id
	 */
	@Column(name = "adminUserId", nullable= true, length = 32)
	public String getAdminUserId() {
		return this.adminUserId;
	}
	
	/**
	 * 方法: 设置当前操作者Id
	 *
	 * @param adminUserId 当前操作者Id
	 */
	public void setAdminUserId(String adminUserId) {
		this.adminUserId = adminUserId;
	}
	
	/**
	 * 方法: 取得课时包Id
	 *
	 * @return java.lang.Integer 课时包Id
	 */
	@Column(name = "packageId", nullable= true, length = 32)
	public String getPackageId() {
		return this.packageId;
	}
	
	/**
	 * 方法: 设置课时包Id
	 *
	 * @param packageId 课时包Id
	 */
	public void setPackageId(String packageId) {
		this.packageId = packageId;
	}
	
	/**
	 * 方法: 取得报名状态
	 *
	 * @return java.lang.Integer 报名状态
	 */
	@Column(name = "applyStatus", nullable= true, length = 11)
	public Integer getApplyStatus() {
		return this.applyStatus;
	}
	
	/**
	 * 方法: 设置报名状态
	 *
	 * @param applyStatus 报名状态
	 */
	public void setApplyStatus(Integer applyStatus) {
		this.applyStatus = applyStatus;
	}
	
	/**
	 * 方法: 取得缴费金额
	 *
	 * @return java.lang.Double 缴费金额
	 */
	@Column(name = "amount", nullable= true, length = 22)
	public Double getAmount() {
		return this.amount;
	}
	
	/**
	 * 方法: 设置缴费金额
	 *
	 * @param amount 缴费金额
	 */
	public void setAmount(Double amount) {
		this.amount = amount;
	}

	@Column(name = "paymentType", nullable= true, length = 11)
	public Integer getPaymentType() {
		return paymentType;
	}

	public void setPaymentType(Integer paymentType) {
		this.paymentType = paymentType;
	}

	@Column(name = "depositStatus", nullable= true, length = 11)
	public Integer getDepositStatus() {
		return depositStatus;
	}

	public void setDepositStatus(Integer depositStatus) {
		this.depositStatus = depositStatus;
	}

	@Column(name = "remark", nullable= true, length = 11)
	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}


	/**
	 * 方法: 取得创建时间
	 *
	 * @return java.sql.Timestamp 创建时间
	 */
	@Column(name = "createTime", nullable= true, length = 19)
	public java.sql.Timestamp getCreateTime() {
		return this.createTime;
	}
	
	/**
	 * 方法: 设置创建时间
	 *
	 * @param createTime 创建时间
	 */
	public void setCreateTime(java.sql.Timestamp createTime) {
		this.createTime = createTime;
	}
	
	/**
	 * 方法: 取得修改时间
	 *
	 * @return java.sql.Timestamp 修改时间
	 */
	@Column(name = "updateTime", nullable= true, length = 19)
	public java.sql.Timestamp getUpdateTime() {
		return this.updateTime;
	}
	
	/**
	 * 方法: 设置修改时间
	 *
	 * @param updateTime 修改时间
	 */
	public void setUpdateTime(java.sql.Timestamp updateTime) {
		this.updateTime = updateTime;
	}

	@Column(name = "paymentCode", nullable= true, length = 32)
	public String getPaymentCode() {
		return paymentCode;
	}

	public void setPaymentCode(String paymentCode) {
		this.paymentCode = paymentCode;
	}

	@Column(name = "packageName", nullable= true, length = 32)
	public String getPackageName() {
		return packageName;
	}

	public void setPackageName(String packageName) {
		this.packageName = packageName;
	}

	@Column(name = "contractNumber", nullable= true, length = 32)
	public String getContractNumber() {
		return contractNumber;
	}

	public void setContractNumber(String contractNumber) {
		this.contractNumber = contractNumber;
	}

	@Column(name = "type", nullable= true, length = 11)
	public Integer getType() {
		return type;
	}

	public void setType(Integer type) {
		this.type = type;
	}

	@Column(name = "sumPrice", nullable= true, length = 11)
	public Double getSumPrice() {
		return sumPrice;
	}

	public void setSumPrice(Double sumPrice) {
		this.sumPrice = sumPrice;
	}

	@Column(name = "discountedPrice", nullable= true, length = 11)
	public Double getDiscountedPrice() {
		return discountedPrice;
	}

	public void setDiscountedPrice(Double discountedPrice) {
		this.discountedPrice = discountedPrice;
	}

	@Column(name = "userName", nullable= true, length = 32)
	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	@Column(name = "totalClassHour", nullable= true, length = 11)
	public Integer getTotalClassHour() {
		return totalClassHour;
	}

	public void setTotalClassHour(Integer totalClassHour) {
		this.totalClassHour = totalClassHour;
	}

	@Column(name = "attendanceDay", nullable= true, length = 11)
	public Integer getAttendanceDay() {
		return attendanceDay;
	}

	public void setAttendanceDay(Integer attendanceDay) {
		this.attendanceDay = attendanceDay;
	}

	@Column(name = "originalUnitPrice", nullable= true, length = 11)
	public Double getOriginalUnitPrice() {
		return originalUnitPrice;
	}

	public void setOriginalUnitPrice(Double originalUnitPrice) {
		this.originalUnitPrice = originalUnitPrice;
	}

	@Column(name = "nowUnitPrice", nullable= true, length = 11)
	public Double getNowUnitPrice() {
		return nowUnitPrice;
	}

	public void setNowUnitPrice(Double nowUnitPrice) {
		this.nowUnitPrice = nowUnitPrice;
	}

	@Column(name = "giftAttendanceDay", nullable= true, length = 11)
	public Integer getGiftAttendanceDay() {
		return giftAttendanceDay;
	}

	public void setGiftAttendanceDay(Integer giftAttendanceDay) {
		this.giftAttendanceDay = giftAttendanceDay;
	}

	@Column(name = "presentClassHour", nullable= true, length = 11)
	public Integer getPresentClassHour() {
		return presentClassHour;
	}

	public void setPresentClassHour(Integer presentClassHour) {
		this.presentClassHour = presentClassHour;
	}

	@Column(name = "positiveConsumptionAttendanceDay", nullable= true, length = 11)
	public Integer getPositiveConsumptionAttendanceDay() {
		return positiveConsumptionAttendanceDay;
	}

	public void setPositiveConsumptionAttendanceDay(Integer positiveConsumptionAttendanceDay) {
		this.positiveConsumptionAttendanceDay = positiveConsumptionAttendanceDay;
	}

	@Column(name = "positiveConsumptionClassHour", nullable= true, length = 11)
	public Integer getPositiveConsumptionClassHour() {
		return positiveConsumptionClassHour;
	}

	public void setPositiveConsumptionClassHour(Integer positiveConsumptionClassHour) {
		this.positiveConsumptionClassHour = positiveConsumptionClassHour;
	}

	@Column(name = "positiveUnusedAttendanceDay", nullable= true, length = 11)
	public Integer getPositiveUnusedAttendanceDay() {
		return positiveUnusedAttendanceDay;
	}

	public void setPositiveUnusedAttendanceDay(Integer positiveUnusedAttendanceDay) {
		this.positiveUnusedAttendanceDay = positiveUnusedAttendanceDay;
	}

	@Column(name = "positiveUnusedClassHour", nullable= true, length = 11)
	public Integer getPositiveUnusedClassHour() {
		return positiveUnusedClassHour;
	}

	public void setPositiveUnusedClassHour(Integer positiveUnusedClassHour) {
		this.positiveUnusedClassHour = positiveUnusedClassHour;
	}

	@Column(name = "surplusFormalAttendanceDay", nullable= true, length = 11)
	public Integer getSurplusFormalAttendanceDay() {
		return surplusFormalAttendanceDay;
	}

	public void setSurplusFormalAttendanceDay(Integer surplusFormalAttendanceDay) {
		this.surplusFormalAttendanceDay = surplusFormalAttendanceDay;
	}

	@Column(name = "surplusFormalClassHour", nullable= true, length = 11)
	public Integer getSurplusFormalClassHour() {
		return surplusFormalClassHour;
	}

	public void setSurplusFormalClassHour(Integer surplusFormalClassHour) {
		this.surplusFormalClassHour = surplusFormalClassHour;
	}

	@Column(name = "studentName", nullable= true, length = 32)
	public String getStudentName() {
		return studentName;
	}

	public void setStudentName(String studentName) {
		this.studentName = studentName;
	}

	@Column(name = "contactPhone", nullable= true, length = 11)
	public String getContactPhone() {
		return contactPhone;
	}

	public void setContactPhone(String contactPhone) {
		this.contactPhone = contactPhone;
	}

	@Column(name = "gifts", nullable= true, length = 11)
	public Double getGifts() {
		return gifts;
	}

	public void setGifts(Double gifts) {
		this.gifts = gifts;
	}

	@Column(name = "realName", nullable= true, length = 11)
	public String getRealName() {
		return realName;
	}

	public void setRealName(String realName) {
		this.realName = realName;
	}

	@Column(name = "teacherName", nullable= true, length = 12)
	public String getTeacherName() {
		return teacherName;
	}

	public void setTeacherName(String teacherName) {
		this.teacherName = teacherName;
	}

	@Transient
	public Integer getIndex() {
		return index;
	}

	public void setIndex(Integer index) {
		this.index = index;
	}
	@Transient
	public List<ViewPaymentDetails> getPackageDetailsList() {
		return packageDetailsList;
	}

	public void setPackageDetailsList(List<ViewPaymentDetails> packageDetailsList) {
		this.packageDetailsList = packageDetailsList;
	}

}